var webpack = require('webpack');
var ExtractTextPlugin = require("extract-text-webpack-plugin");
var HtmlWebpackPlugin = require('html-webpack-plugin');
//环境变量配置，dev /online
var WEBPACK_ENV = process.env.WEBPACK_ENV || 'env';

//获取html-webpack-plugin参数的封装方法
var getHtmlConfig = function(name){
  return {
      template :'./src/view/'+name+'.html',
      filename :'view/'+name+'.html',
      inject   :true,
      hash     :true,
      chunks   :['common',name]
  };
};

var cofing = {
  entry: {
    'common' : ['./src/page/common/index.js'],
  	'index' : ['./src/page/index/index.js'],
  	'login' : ['./src/page/login/index.js'],
  },
  output: {
  	path: './dist',
    publicPath: '/dist',
    filename: 'js/[name].js'
  },
   module: {
    loaders: [
      { test: /\.css$/, loader: ExtractTextPlugin.extract('style-loader', 'css-loader')},
      { test: /\.(gif|png|jpg|woff|svg|eot|ttf)\??.*$/, loader: 'url-loader?limit=100&name=/resource/[name].[ext]'}
    ]
  },
  plugins: [
  //独立通用模块到js/base.js
    new webpack.optimize.CommonsChunkPlugin({
        name: 'common',
        filename: 'js/base.js'
    }),
    //把css单独打包
    new ExtractTextPlugin("css/[name].css"),
    //引入jquery的两种方式：
    //第一种，通过ProvidePlugin自动加载模块，而不必到处 import 或 require。
    //另一种，直接在view html的body文件中引入jquery，注意在head引入无效。
    //应用场景。在任意源码中：
    //第一种方法自动加载jquery，无需包含require jquery也可以直接使用$。
    //第二种方法，直接在view html文件引入的jQuery js，使用$引用需要声明require包含文件。
    //例如var $ = require('jquery');$('body').html('加载jq成功')。
    //jQuery可以直接应用不需要包含引用。jQuery('body').html('jQuery加载成功')
    new webpack.ProvidePlugin({
      $: 'jquery',
      jQuery: 'jquery'
    }),
    //html模板处理
    // new HtmlWebpackPlugin({
    //   template :'./src/view/index.html',
    //   filename :'view/index.html',
    //   inject   :true,
    //   hash     :true,
    //   chunks   :['common','index']//加载base.js和index.js到html文件中
    // }),
    //使用封装方法处理html模板
    new HtmlWebpackPlugin(getHtmlConfig('index')),
    new HtmlWebpackPlugin(getHtmlConfig('login')),

  ]
};

if('dev' === WEBPACK_ENV){
    cofing.entry.common.push('webpack-dev-server/client?http://localhost:8088/');
}
module.exports = cofing